#pragma once

#include "Thing.h"

class Effect : public Thing
{
public:
	Effect();
	~Effect();

	void Draw();
	void Update();
	void Move();
	void Reset();

	void SetAni(AniVec2 nA);
	void SetMove(Move_Vec2 nM);
	void SetNowAniState(DWORD ns);
	void SetNowMoveState(DWORD ns);
	DWORD GetNowAniState();

	void SetScale(D3DXVECTOR2 nS);
	void SetScaleVel(D3DXVECTOR2 nSV);
	void SetScalelim(D3DXVECTOR2 nSL);

	void SetRadian(float nr);
	void SetRadianVel(float nrv);

	void SetNowState(DWORD ns);
	DWORD GetNowState();

	void SetLifeTime(DWORD nl);

	void SetID(DWORD ni);
	DWORD GetID();

	DWORD DeleteCheck();
private:
	AniVec2 _Ani;
	Move_Vec2 _Move;
	Ani_info nowAni;
	Move_info nowMove;

	DWORD nowAniState1;
	DWORD nowAniState2;
	DWORD nowAniCount;
	DWORD nowMoveState1;
	DWORD nowMoveState2;
	DWORD nowMoveCount;

	D3DXVECTOR2 Scalingval;
	D3DXVECTOR2 Scalingvelo;
	D3DXVECTOR2 LimitScaling;
	float scaleratio;

	float radian;
	float radianvel;
	
	DWORD nowState;
	DWORD nowStateCount;

	DWORD liveTime;
	DWORD limitedTime;

	DWORD ID;
};

typedef std::list<Effect*> EffectList;